package com.rockcent.mall.lib.repository;

import com.rockcent.common.common.PageResult;
import com.rockcent.mall.lib.domain.Merchant;
import com.rockcent.mall.lib.domain.MerchantCoupon;
import com.rockcent.mall.lib.domain.MerchantGiftPacket;
import com.rockcent.mall.lib.domain.Product;
import com.rockcent.mall.lib.domain.enumclass.GiftPacketProductType;
import com.rockcent.mall.lib.dto.GiftPacketDto;
import com.rockcent.mall.lib.dto.MerchantGiftPacketCouponDto;
import com.rockcent.mall.lib.dto.MerchantGiftPacketProductDto;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * Created by DK on 16/10/9.
 */
@Repository
public interface MerchantGiftPacketRepositoryCustom {
    PageResult<GiftPacketDto> findGiftPacketPage(Long merchantId, String status, String keyword, PageResult pageResult);

    List<MerchantGiftPacketProductDto> findGiftPacketProduct(Long giftPacketId, GiftPacketProductType giftPacketProductType);

    List<MerchantGiftPacketCouponDto> findMerchantCouponList(Long giftPacketId);

    PageResult<GiftPacketDto> findRelatedGiftPacket(Long merchantId, String keyword, String status, Long relateMerchantId, PageResult pageResult);

    List<Merchant> findGiftPacketMerchant(Long mallId, Long merchantId);

    PageResult<GiftPacketDto> findMarketGiftPacketPage(String sort, String sortByName, String keyword, String showSaleGiftPacket, Long mallId, Long merchantId, PageResult pageResult);

    PageResult<GiftPacketDto> findMallGiftPacketPage(Long mallId, PageResult pageResult);

    PageResult<GiftPacketDto> merchantGiftPacketPage(Long mallId, Long merchantId,List<Long> idList, PageResult page);

    PageResult<MerchantGiftPacket> findByIdsPage(List<Long> giftPacketId, PageResult page);

    Long getGiftPacketCount(Long mallId, Long merchantId);

    List<MerchantGiftPacket> getGiftPacketExpired();

    List<MerchantGiftPacket> getGiftPacketNotStart();
}
